﻿Imports VN.INS.BL.BC
Imports System.Data
Imports System.Web
Imports System.IO

Partial Class Devida_MantenimientoUsuario
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If (Not (Page.IsPostBack)) Then
            'cargamos datos

            CargaGrillaManUsario("")

            LISTA_PERFIL()
            ddl_perfil.SelectedValue = "all"

            LISTA_TIPO_USUARIO()
            ddl_tipo_usuario.SelectedValue = "all"

            LISTA_PPER()
            ddl_pper.SelectedValue = "all"

            LISTA_ESTADO()
            ddl_estado.SelectedValue = "all"

            OFICINA_ZONAL()
            ddl_ofizonal.SelectedValue = "all"

            tipo_persona()
            ddl_tp.SelectedValue = "all"

            ejecutor()
            ddl_eje.SelectedValue = "all"

            JEFE()
            ddl_jefe.SelectedValue = "all"
            chkb.Checked = True
        End If
    End Sub

    'cargamos grilla usuario
    Public Sub CargaGrillaManUsario(ByVal strNombre As String)
        Dim ObjMantenimientoUsuarioBC As MantenimientoUsuarioBC
        Dim ObjData As DataTable
        ObjMantenimientoUsuarioBC = New MantenimientoUsuarioBC
        ObjData = ObjMantenimientoUsuarioBC.LISTA_USUARIO(strNombre)
        gv_usuario.DataSource = ObjData
        gv_usuario.DataBind()       
    End Sub

    Protected Sub boton_busca_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles boton_busca.Click
        CargaGrillaManUsario(TextBox1.Text)
    End Sub

    Public Sub LISTA_PERFIL()
        'cargamos combo perfil
        Dim ObjMantenimientoUsuarioBC As MantenimientoUsuarioBC
        Dim ObjData As DataTable
        ObjMantenimientoUsuarioBC = New MantenimientoUsuarioBC
        ObjData = New DataTable
        ObjData = ObjMantenimientoUsuarioBC.LISTA_PERFIL()
        Dim drperfilrow As DataRow = ObjData.NewRow()
        drperfilrow("DESCRIPCION") = "--Seleccione--"
        drperfilrow("PERFIL") = "all"
        ObjData.Rows.Add(drperfilrow)
        ddl_perfil.DataSource = ObjData
        ddl_perfil.DataTextField = "DESCRIPCION"
        ddl_perfil.DataValueField = "PERFIL"
        ddl_perfil.DataBind()
    End Sub

    Public Sub LISTA_TIPO_USUARIO()
        'cargamos combo tipo usuario
        Dim ObjMantenimientoUsuarioBC As MantenimientoUsuarioBC
        Dim ObjData As DataTable
        ObjMantenimientoUsuarioBC = New MantenimientoUsuarioBC
        ObjData = New DataTable
        ObjData = ObjMantenimientoUsuarioBC.LISTA_TIPO_USUARIO()
        Dim drtipousuariorow As DataRow = ObjData.NewRow()
        drtipousuariorow("DESCRIPCION") = "--Seleccione--"
        drtipousuariorow("TIPO_USUARIO") = "all"
        ObjData.Rows.Add(drtipousuariorow)
        ddl_tipo_usuario.DataSource = ObjData
        ddl_tipo_usuario.DataTextField = "DESCRIPCION"
        ddl_tipo_usuario.DataValueField = "TIPO_USUARIO"
        ddl_tipo_usuario.DataBind()
    End Sub

    Public Sub OFICINA_ZONAL()
        'cargamos combo oficina zonal
        Dim ObjMantenimientoUsuarioBC As MantenimientoUsuarioBC
        Dim ObjData As DataTable
        ObjMantenimientoUsuarioBC = New MantenimientoUsuarioBC
        ObjData = New DataTable
        ObjData = ObjMantenimientoUsuarioBC.OFICINA_ZONAL()
        Dim droficinarow As DataRow = ObjData.NewRow()
        droficinarow("DESCRIPCION") = "--Seleccione--"
        droficinarow("OFICINA_ZONAL") = "all"
        ObjData.Rows.Add(droficinarow)
        ddl_ofizonal.DataSource = ObjData
        ddl_ofizonal.DataTextField = "DESCRIPCION"
        ddl_ofizonal.DataValueField = "OFICINA_ZONAL"
        ddl_ofizonal.DataBind()
    End Sub

    Public Sub ejecutor()
        'cargamos combo ejecutor
        Dim ObjMantenimientoUsuarioBC As MantenimientoUsuarioBC
        Dim ObjData As DataTable
        ObjMantenimientoUsuarioBC = New MantenimientoUsuarioBC
        ObjData = New DataTable
        ObjData = ObjMantenimientoUsuarioBC.ejecutor()
        Dim drejecutorrow As DataRow = ObjData.NewRow()
        drejecutorrow("DESCRIPCION") = "--Seleccione--"
        drejecutorrow("EJECUTOR") = "all"
        ObjData.Rows.Add(drejecutorrow)
        ddl_eje.DataSource = ObjData
        ddl_eje.DataTextField = "DESCRIPCION"
        ddl_eje.DataValueField = "EJECUTOR"
        ddl_eje.DataBind()
    End Sub

    Public Sub JEFE()
        'cargamos combo jefe inmediato
        Dim ObjMantenimientoUsuarioBC As MantenimientoUsuarioBC
        Dim ObjData As DataTable
        ObjMantenimientoUsuarioBC = New MantenimientoUsuarioBC
        ObjData = New DataTable
        ObjData = ObjMantenimientoUsuarioBC.JEFE()
        Dim drjeferow As DataRow = ObjData.NewRow()
        drjeferow("JEFE") = "--Seleccione--"
        drjeferow("PERSONA") = "all"
        ObjData.Rows.Add(drjeferow)
        ddl_jefe.DataSource = ObjData
        ddl_jefe.DataTextField = "JEFE"
        ddl_jefe.DataValueField = "PERSONA"
        ddl_jefe.DataBind()
    End Sub

    Public Sub tipo_persona()
        'cargamos combo  tipo persona
        Dim ObjMantenimientoUsuarioBC As MantenimientoUsuarioBC
        Dim ObjData As DataTable
        ObjMantenimientoUsuarioBC = New MantenimientoUsuarioBC
        ObjData = New DataTable
        ObjData = ObjMantenimientoUsuarioBC.tipo_persona()
        Dim drtipoperrow As DataRow = ObjData.NewRow()
        drtipoperrow("DESCRIPCION") = "--Seleccione--"
        drtipoperrow("TIPO_PERSONA") = "all"
        ObjData.Rows.Add(drtipoperrow)
        ddl_tp.DataSource = ObjData
        ddl_tp.DataTextField = "DESCRIPCION"
        ddl_tp.DataValueField = "TIPO_PERSONA"
        ddl_tp.DataBind()
    End Sub

    Public Sub LISTA_ESTADO()
        'cargamos combo  estado
        Dim ObjMantenimientoUsuarioBC As GeneralBC
        Dim ObjData As DataTable
        ObjMantenimientoUsuarioBC = New GeneralBC
        ObjData = New DataTable
        ObjData = ObjMantenimientoUsuarioBC.ListaTablaGeneral("ESTADO_USUARIO")
        Dim drestadorow As DataRow = ObjData.NewRow()
        drestadorow("DESCRIPCION") = "--Seleccione--"
        drestadorow("CODIGO") = "all"
        ObjData.Rows.Add(drestadorow)
        ddl_estado.DataSource = ObjData
        ddl_estado.DataTextField = "DESCRIPCION"
        ddl_estado.DataValueField = "CODIGO"
        ddl_estado.DataBind()
    End Sub

    Public Sub LISTA_PPER()
        'cargamos combo pper
        Dim objMONITOREOBC As MONITOREOBC
        Dim ObjData As DataTable
        objMONITOREOBC = New MONITOREOBC
        ObjData = New DataTable
        ObjData = objMONITOREOBC.ppermonitor()
        Dim drpperrow As DataRow = ObjData.NewRow()
        drpperrow("ABREVIATURA") = "--Seleccione--"
        drpperrow("PPER") = "all"
        ObjData.Rows.Add(drpperrow)
        ddl_pper.DataSource = ObjData
        ddl_pper.DataTextField = "ABREVIATURA"
        ddl_pper.DataValueField = "PPER"
        ddl_pper.DataBind()
    End Sub

    Protected Sub gv_usuario_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gv_usuario.RowDataBound
        ' FORMATEA ROWS
        If e.Row.RowType = DataControlRowType.DataRow Then
            ' ASIGNA EVENTOS
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gv_usuario, "Select$" + e.Row.RowIndex.ToString)
        End If
    End Sub

    Protected Sub gv_usuario_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gv_usuario.SelectedIndexChanged
        Dim oficina1 As String = ""
        Dim perpper1 As String = ""
        Dim jef1 As String = ""
        Dim tipopersona As String = ""
        Dim pereje As String = ""
        Dim tipousuario As String = ""
        Dim usuestado As String = ""
        Dim PERF As String = ""
        chkb.Checked = False
        habilitar()
        'llenamos controles con valores de fila seleccionada
        txtusuario.Text = gv_usuario.SelectedRow.Cells(6).Text
        txt_nom.Text = gv_usuario.SelectedRow.Cells(3).Text
        If gv_usuario.SelectedRow.Cells(1).Text = "&nbsp;" Then
            txt_paterno.Text = ""
        Else
            txt_paterno.Text = gv_usuario.SelectedRow.Cells(1).Text
        End If
        If gv_usuario.SelectedRow.Cells(2).Text = "&nbsp;" Then
            txtmaterno.Text = ""
        Else
            txtmaterno.Text = gv_usuario.SelectedRow.Cells(2).Text
        End If
        Dim htxtpasw As HiddenField = CType(gv_usuario.SelectedRow.FindControl("password"), HiddenField)
        If Not htxtpasw Is Nothing Then
            ViewState("VSpaswrd") = htxtpasw.Value.ToString
        End If
        If ViewState("VSpaswrd") = "&nbsp;" Then
            txtpassword.Text = ""
        Else
            txtpassword.Text = htxtpasw.Value.ToString
        End If
        Dim htxtEJE As HiddenField = CType(gv_usuario.SelectedRow.FindControl("EJECUTOR"), HiddenField)
        If Not htxtEJE Is Nothing Then
            pereje = htxtEJE.Value.ToString
        End If
        If pereje = "" Then
            ddl_eje.SelectedValue = "all"
        Else
            ddl_eje.SelectedValue = pereje
        End If
        Dim htxtOFI As HiddenField = CType(gv_usuario.SelectedRow.FindControl("OFICINA"), HiddenField)
        If Not htxtOFI Is Nothing Then
            oficina1 = htxtOFI.Value.ToString
        End If
        If oficina1 = "" Then
            ddl_ofizonal.SelectedValue = "all"
        Else
            ddl_ofizonal.SelectedValue = oficina1
        End If
        Dim htxtPPER As HiddenField = CType(gv_usuario.SelectedRow.FindControl("PPER"), HiddenField)
        If Not htxtPPER Is Nothing Then
            perpper1 = htxtPPER.Value.ToString
        End If
        If perpper1 = "" Then
            ddl_pper.SelectedValue = "all"
        Else
            ddl_pper.SelectedValue = perpper1
        End If
        Dim htxtTP As HiddenField = CType(gv_usuario.SelectedRow.FindControl("TIPO_PERSONA"), HiddenField)
        If Not htxtTP Is Nothing Then
            tipopersona = htxtTP.Value.ToString
        End If
        If tipopersona = "" Then
            ddl_tp.SelectedValue = "all"
        Else
            ddl_tp.SelectedValue = tipopersona
        End If
        Dim htxtJEF As HiddenField = CType(gv_usuario.SelectedRow.FindControl("jef"), HiddenField)
        If Not htxtJEF Is Nothing Then
            jef1 = htxtJEF.Value.ToString
        End If
        If jef1 = "" Then
            ddl_jefe.SelectedValue = "all"
        Else
            ddl_jefe.SelectedValue = jef1
        End If
        Dim htxtST As HiddenField = CType(gv_usuario.SelectedRow.FindControl("STADO"), HiddenField)
        If Not htxtST Is Nothing Then
            usuestado = htxtST.Value.ToString
        End If
        If usuestado = "" Then
            ddl_estado.SelectedValue = "all"
        Else
            ddl_estado.SelectedValue = usuestado
        End If
        Dim htxtPERF As HiddenField = CType(gv_usuario.SelectedRow.FindControl("PERF"), HiddenField)
        If Not htxtTP Is Nothing Then
            PERF = htxtPERF.Value.ToString
        End If
        ddl_perfil.SelectedValue = PERF
        Dim htxtUTIP As HiddenField = CType(gv_usuario.SelectedRow.FindControl("TIPUSU"), HiddenField)
        If Not htxtUTIP Is Nothing Then
            tipousuario = htxtUTIP.Value.ToString
        End If
        ddl_tipo_usuario.SelectedValue = tipousuario
        Dim htxtpers As HiddenField = CType(gv_usuario.SelectedRow.FindControl("PERSONA"), HiddenField)
        ViewState("VSPERSONA") = htxtpers.Value.ToString
        Dim htxtusus As HiddenField = CType(gv_usuario.SelectedRow.FindControl("USUARIO"), HiddenField)
        ViewState("VSUSUCOD") = htxtusus.Value.ToString
    End Sub

    Protected Sub chkb_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles chkb.CheckedChanged
        'si se marca checkbox
        If chkb.Checked = True Then
            habilitar()
            gv_usuario.SelectedIndex = -1
        End If
        'si se desmarca checkbox y no hay fila seleccionada
        If chkb.Checked = False And gv_usuario.SelectedIndex = -1 Then
            Desabilitar()
        End If
        LIMPIAR()
    End Sub

    Protected Sub btn_guardar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btn_guardar.Click
        Dim A As String
        A = "E"
        If chkb.Checked = True Then
            A = "I"
        End If
        If A = "I" Then 'Insertar
            'Insertamos usuario si se llenaron todos los datos
            If txt_nom.Text = "" Or txt_paterno.Text = "" Or txtusuario.Text = "" Or txtpassword.Text = "" Or ddl_eje.SelectedValue = "all" Or ddl_ofizonal.SelectedValue = "all" Or ddl_pper.SelectedValue = "all" Or ddl_tp.SelectedValue = "all" Or ddl_jefe.SelectedValue = "all" Or ddl_estado.SelectedValue = "all" Or ddl_perfil.SelectedValue = "all" Or ddl_tipo_usuario.SelectedValue = "all" Then
                alerta.Mostrar_Alerta("Aviso", "Falta llenar el campo : " & IIf(txt_nom.Text = "", " - Nombre", "") & IIf(txt_paterno.Text = "", "- Ap. Paterno", "") & IIf(txtusuario.Text = "", "- Usuario", "") & IIf(txtpassword.Text = "", "- Password", "") & IIf(ddl_eje.SelectedValue = "all", "- Ejecutor", "") & IIf(ddl_ofizonal.SelectedValue = "all", "- Oficina Zonal", "") & IIf(ddl_pper.SelectedValue = "all", "- PPER", "") & IIf(ddl_tp.SelectedValue = "all", "- Tipo Persona", "") & IIf(ddl_jefe.SelectedValue = "all", "- Jefe", "") & IIf(ddl_estado.SelectedValue = "all", "- Estado", "") & IIf(ddl_perfil.SelectedValue = "all", "- Perfil", "") & IIf(ddl_tipo_usuario.SelectedValue = "all", "- Tipo de Usuario", ""))
                Exit Sub
            End If
            Dim objgenj As GeneralBC
            Dim strCodigo As String
            Dim strCodigoUSU As String
            objgenj = New GeneralBC
            strCodigo = objgenj.GenerarCodigo("PERSONA", "PERSONA", "PER-")
            strCodigoUSU = objgenj.GenerarCodigo("USUARIO", "USUARIO", "USU-")
            insert_persona_usuario(strCodigo, UCase(txt_nom.Text), UCase(txt_paterno.Text), UCase(txtmaterno.Text), UCase(strCodigoUSU), ddl_eje.SelectedValue.ToString, ddl_tp.SelectedValue.ToString, ddl_ofizonal.SelectedValue.ToString, ddl_pper.SelectedValue.ToString, ddl_jefe.SelectedValue.ToString,
                                   ddl_perfil.SelectedValue.ToString, txtpassword.Text, ddl_estado.SelectedValue.ToString, ddl_tipo_usuario.SelectedValue.ToString, UCase(txtusuario.Text))
            alerta.Mostrar_Alerta("Aviso", "Los Datos se Guardaron Correctamente")
        Else            'Editar
            'Editamos usuario seleccionado
            If gv_usuario.SelectedIndex = -1 Then
                alerta.Mostrar_Alerta("Error", "Debe seleccionar un Registro o elegir la opcion de nuevo")
                Exit Sub
            End If
            If txtpassword.Text = "" Then   'sin ingreso de password
                editar_persona_usuario(ViewState("VSPERSONA"), UCase(txt_nom.Text), UCase(txt_paterno.Text), UCase(txtmaterno.Text), ViewState("VSUSUCOD"), ddl_eje.SelectedValue.ToString, ddl_tp.SelectedValue.ToString, ddl_ofizonal.SelectedValue.ToString, ddl_pper.SelectedValue.ToString, ddl_jefe.SelectedValue.ToString,
                                    ddl_perfil.SelectedValue.ToString, ViewState("VSpaswrd"), ddl_estado.SelectedValue.ToString, ddl_tipo_usuario.SelectedValue.ToString, UCase(txtusuario.Text))
                alerta.Mostrar_Alerta("Aviso", "Los Datos se Guardaron Correctamente")
            Else                            'con ingreso de password
                editar_persona_usuario(ViewState("VSPERSONA"), UCase(txt_nom.Text), UCase(txt_paterno.Text), UCase(txtmaterno.Text), ViewState("VSUSUCOD"), ddl_eje.SelectedValue.ToString, ddl_tp.SelectedValue.ToString, ddl_ofizonal.SelectedValue.ToString, ddl_pper.SelectedValue.ToString, ddl_jefe.SelectedValue.ToString,
                                    ddl_perfil.SelectedValue.ToString, txtpassword.Text, ddl_estado.SelectedValue.ToString, ddl_tipo_usuario.SelectedValue.ToString, UCase(txtusuario.Text))
                alerta.Mostrar_Alerta("Aviso", "Los Datos se Guardaron Correctamente")
            End If
        End If
        'volvemos a cargar grilla usuario
        CargaGrillaManUsario("")
        chkb.Checked = False
    End Sub

    'insercion de usuario
    Public Sub insert_persona_usuario(ByVal per As String, ByVal nom As String, ByVal pater As String, ByVal mater As String, ByVal USUARIO As String, ByVal EJEC As String,
                     ByVal tiper As String, ByVal ofiz As String, ByVal PPER As String, ByVal JEFE As String, ByVal PF As String, ByVal PAS As String,
                     ByVal EST As String, ByVal TPU As String, ByVal USERNAME As String)
        If EJEC = "all" Then
            EJEC = ""
        End If
        If tiper = "all" Then
            tiper = ""
        End If
        If ofiz = "all" Then
            ofiz = ""
        End If
        If PPER = "all" Then
            PPER = ""
        End If
        If JEFE = "all" Then
            JEFE = ""
        End If
        If TPU = "all" Then
            TPU = ""
        End If
        If EST = "all" Then
            EST = ""
        End If
        If per = "all" Then
            alerta.Mostrar_Alerta("Error", "Debe Elegir un Perfil")
            Exit Sub
        End If
        Dim ObjMantenimientoUsuarioBC As MantenimientoUsuarioBC
        Try
            ObjMantenimientoUsuarioBC = New MantenimientoUsuarioBC
            ObjMantenimientoUsuarioBC.insert_persona_usuario(per, nom, pater, mater, USUARIO, EJEC, tiper, ofiz, PPER, JEFE, PF, PAS, EST, TPU, USERNAME)
        Catch ex As Exception
            Throw ex
        End Try
    End Sub

    'edicion de usuario
    Public Sub editar_persona_usuario(ByVal per As String, ByVal nom As String, ByVal pater As String, ByVal mater As String, ByVal USUARIO As String, ByVal EJEC As String,
                    ByVal tiper As String, ByVal ofiz As String, ByVal PPER As String, ByVal JEFE As String, ByVal PF As String, ByVal PAS As String,
                    ByVal EST As String, ByVal TPU As String, ByVal USERNAME As String)
        If EJEC = "all" Then
            EJEC = ""
        End If
        If tiper = "all" Then
            tiper = ""
        End If
        If ofiz = "all" Then
            ofiz = ""
        End If
        If PPER = "all" Then
            PPER = ""
        End If
        If JEFE = "all" Then
            JEFE = ""
        End If
        If TPU = "all" Then
            TPU = ""
        End If
        If EST = "all" Then
            EST = ""
        End If

        If per = "all" Then
            alerta.Mostrar_Alerta("Error", "Debe Elegir un Perfil")
            Exit Sub
        End If





        Dim ObjMantenimientoUsuarioBC As MantenimientoUsuarioBC
        Try
            ObjMantenimientoUsuarioBC = New MantenimientoUsuarioBC
            ObjMantenimientoUsuarioBC.editar_persona_usuario(per, nom, pater, mater, USUARIO, EJEC, tiper, ofiz, PPER, JEFE, PF, PAS, EST, TPU, USERNAME)

        Catch ex As Exception
            Throw ex
        End Try
    End Sub

    Public Sub LIMPIAR()
        txt_nom.Text = ""
        txt_paterno.Text = ""
        txtmaterno.Text = ""
        txtusuario.Text = ""
        txtpassword.Text = ""


        LISTA_PERFIL()
        LISTA_TIPO_USUARIO()
        LISTA_PPER()
        LISTA_ESTADO()
        OFICINA_ZONAL()
        tipo_persona()
        ejecutor()
        JEFE()
        ddl_perfil.SelectedValue = "all"
        ddl_tipo_usuario.SelectedValue = "all"
        ddl_pper.SelectedValue = "all"
        ddl_estado.SelectedValue = "all"
        ddl_ofizonal.SelectedValue = "all"
        ddl_tp.SelectedValue = "all"
        ddl_eje.SelectedValue = "all"
        ddl_jefe.SelectedValue = "all"
    End Sub

    Public Sub Desabilitar()
        'deshabilitamos controles
        txt_nom.Enabled = False
        txt_paterno.Enabled = False
        txtmaterno.Enabled = False
        txtusuario.Enabled = False
        txtpassword.Enabled = False
        ddl_perfil.Enabled = False
        ddl_tipo_usuario.Enabled = False
        ddl_pper.Enabled = False
        ddl_estado.Enabled = False
        ddl_ofizonal.Enabled = False
        ddl_tp.Enabled = False
        ddl_eje.Enabled = False
        ddl_jefe.Enabled = False
    End Sub

    Public Sub habilitar()
        'habilitamos controles
        txt_nom.Enabled = True
        txt_paterno.Enabled = True
        txtmaterno.Enabled = True
        txtusuario.Enabled = True
        txtpassword.Enabled = True
        ddl_perfil.Enabled = True
        ddl_tipo_usuario.Enabled = True
        ddl_pper.Enabled = True
        ddl_estado.Enabled = True
        ddl_ofizonal.Enabled = True
        ddl_tp.Enabled = True
        ddl_eje.Enabled = True
        ddl_jefe.Enabled = True
    End Sub

    Protected Sub btnsalir_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnsalir.Click
        Response.Redirect("Inicio.aspx")
    End Sub
End Class


